﻿using FreshTexture.Interfaces;
using System;
using System.Collections.Generic;

namespace FreshTexture.Model
{
    /// <summary>
    /// Class Entity przechowująca dane bloków z texturepacka
    /// posiada składowe  IsSaved  Bottom TxtFile ModelType Animated AnimationKeyFrames ArchiveName
    /// </summary>
    public class Entity : IMyEntity
    {
        #region IMyEntity Members

        /// <summary>
        /// Gets or sets a value indicating whether this instance is saved.
        /// </summary>
        /// <value><c>true</c> if this instance is saved; otherwise, <c>false</c>.</value>
        public bool IsSaved { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public bool IsSelected { get; set; }

        /// <summary>
        /// Gets or sets the face front.
        /// </summary>
        /// <value>The face front.</value>
        public Uri FaceFront { get; set; }

        /// <summary>
        /// Gets or sets the face left.
        /// </summary>
        /// <value>The face left.</value>
        public Uri FaceLeft { get; set; }

        /// <summary>
        /// Gets or sets the face right.
        /// </summary>
        /// <value>The face right.</value>
        public Uri FaceRight { get; set; }

        /// <summary>
        /// Gets or sets the face top.
        /// </summary>
        /// <value>The face top.</value>
        public Uri FaceTop { get; set; }

        /// <summary>
        /// Gets or sets the face bottom.
        /// </summary>
        /// <value>The face bottom.</value>
        public Uri FaceBottom { get; set; }

        /// <summary>
        /// Gets or sets the face back.
        /// </summary>
        /// <value>The face back.</value>
        public Uri FaceBack { get; set; }

        /// <summary>
        /// Gets or sets the TXT file.
        /// </summary>
        /// <value>The TXT file.</value>
        public string TxtFile { get; set; }

        /// <summary>
        /// typ modela bloku (np. drzwi, przycisk, block)
        /// </summary>
        public string ModelType { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether this <see cref="IMyEntity"/> is animated.
        /// </summary>
        /// <value><c>true</c> if animated; otherwise, <c>false</c>.</value>
        public bool Animated { get; set; }

        /// <summary>
        /// Gets or sets the animation key frames.
        /// </summary>
        /// <value>The animation key frames.</value>
        public List<string> AnimationKeyFrames { get; set; }

        /// <summary>
        /// Gets or sets the name of the archive.
        /// </summary>
        /// <value>The name of the archive.</value>
        public string ArchiveName { get; set; }

        /// <summary>
        /// Block Name
        /// </summary>
        public string BlockName { get; set; }

        #endregion IMyEntity Members
    }
}